package com.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.OrderBean;
import com.project.bean.ShoppBean;

import java.time.LocalDate;
import java.util.List;

public interface IOrderService {
    /**
     * （添加订单）
     *  1.根据用户id，计算购物车商品总价，封装到订单对象中
     *  2.添加订单信息
     *  3.查询该用户购物车集合
     *  4.批量添加订单明细
     *  5.清空购物车
     * @param order 订单对象
     */
    public void add(OrderBean order);

    /**
     * 动态分页查询订单
     * @param pageNO 页码
     * @param userId 用户id
     * @param status 状态
     * @param startDate 起始日期
     * @param endDate 结束日期
     * @return 订单分页对象
     */
    public IPage<OrderBean> cutByItem(Integer pageNO, Integer userId, String status,
                                      LocalDate startDate, LocalDate endDate);

    /**
     * （查询订单）
     * 按订单id查询订单详情，同时查询订单明细集合
     * 订单明细信息中，需要查询商品编号，商品名，单价
     * @param id 订单对象
     * @return 订单对象
     */
    public OrderBean findById(Integer id);

    /**
     * （订单发货）
     * 按id修改订单状态为发货中
     * @param id 订单id
     */
    public void send(Integer id );

    /**
     * （订单结账）
     * 按id修改订单状态为已完结
     * @param id 订单id
     */
    public void compile(Integer id);

    /**
     * （送货员查询订单）
     * 查询所有状态为发货中的订单
     * @return 订单集合
     */
    public List<OrderBean> findByStatus();
}
